home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
CIncludes
/
Drag.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-05-01
|
25KB
|
657 lines
/*
File: Drag.h
Contains: Drag and Drop Interfaces.
Version: Technology: System 7.5
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __DRAG__
#define __DRAG__
#ifndef __SCRAP__
#include <Scrap.h>
#endif
#ifndef __APPLEEVENTS__
#include <AppleEvents.h>
#endif
#ifndef __QUICKDRAW__
#include <Quickdraw.h>
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
#ifndef __TEXTEDIT__
#include <TextEdit.h>
#endif
#ifndef __FILES__
#include <Files.h>
#endif
#ifndef __EVENTS__
#include <Events.h>
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_IMPORT_SUPPORTED
#pragma import on
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k
#endif
/*
_________________________________________________________________________________________________________
* DRAG MANAGER DATA TYPES
Currently there are two data types representing a drag in this interface file; ScrapRef and
DragReference. It is safe to assume:
ScrapRef == DragReference
The two types can be used interchangably throughout the Drag interface file. ScrapRef is the
new System 8 Drag Manager data type. API's that are deprecated for System 8 will always
take a DragReference as their parameter.
For now though, use them interchangably.
_________________________________________________________________________________________________________
*/
typedef ScrapRef DragReference;
typedef ScrapRef DragScrapRef;
typedef ScrapItemUserReference ItemReference;
typedef ScrapItemType FlavorType;
/*
_________________________________________________________________________________________________________
* DRAG ATTRIBUTES
_________________________________________________________________________________________________________
*/
typedef OptionBits DragAttributes;
enum {
kDragHasLeftSenderWindow = (1L << 0), /* drag has left the source window since TrackDrag*/
kDragInsideSenderApplication = (1L << 1), /* drag is occurring within the sender application*/
kDragInsideSenderWindow = (1L << 2) /* drag is occurring within the sender window*/
};
/*
_________________________________________________________________________________________________________
* DRAG IMAGE FLAGS
_________________________________________________________________________________________________________
*/
typedef OptionBits DragImageFlags;
enum {
kDragRegionAndImage = (1L << 4) /* drag region and image*/
};
/*
_________________________________________________________________________________________________________
* DRAG IMAGE TRANSLUCENCY LEVELS
_________________________________________________________________________________________________________
*/
typedef UInt32 DragImageTranslucency;
enum {
kDragStandardTranslucency = 0L, /* 65% image translucency (standard)*/
kDragDarkTranslucency = 1L, /* 50% image translucency*/
kDragDarkerTranslucency = 2L, /* 25% image translucency*/
kDragOpaqueTranslucency = 3L /* 0% image translucency (opaque)*/
};
/*
_________________________________________________________________________________________________________
* DRAG DRAWING PROCEDURE MESSAGES
_________________________________________________________________________________________________________
*/
typedef SInt16 DragRegionMessage;
enum {
kDragRegionBegin = 1, /* initialize drawing*/
kDragRegionDraw = 2, /* draw drag feedback*/
kDragRegionHide = 3, /* hide drag feedback*/
kDragRegionIdle = 4, /* drag feedback idle time*/
kDragRegionEnd = 5 /* end of drawing*/
};
/*
_________________________________________________________________________________________________________
* ZOOM ACCELERATION
_________________________________________________________________________________________________________
*/
typedef SInt16 ZoomAcceleration;
enum {
kZoomNoAcceleration = 0, /* use linear interpolation*/
kZoomAccelerate = 1, /* ramp up step size*/
kZoomDecelerate = 2 /* ramp down step size*/
};
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
/*
_________________________________________________________________________________________________________
* FLAVOR FLAGS
_________________________________________________________________________________________________________
*/
typedef OptionBits FlavorFlags;
enum {
flavorSenderOnly = (1 << 0), /* flavor is available to sender only*/
flavorSenderTranslated = (1 << 1), /* flavor is translated by sender*/
flavorNotSaved = (1 << 2), /* flavor should not be saved*/
flavorSystemTranslated = (1 << 8) /* flavor is translated by system*/
};
/*
_________________________________________________________________________________________________________
* SPECIAL FLAVORS
_________________________________________________________________________________________________________
*/
enum {
flavorTypeHFS = 'hfs ', /* flavor type for HFS data*/
flavorTypePromiseHFS = 'phfs', /* flavor type for promised HFS data*/
flavorTypeDirectory = 'diry' /* flavor type for AOCE directories*/
};
/*
_________________________________________________________________________________________________________
* DRAG TRACKING HANDLER MESSAGES
_________________________________________________________________________________________________________
*/
typedef SInt16 DragTrackingMessage;
enum {
kDragTrackingEnterHandler = 1, /* drag has entered handler*/
kDragTrackingEnterWindow = 2, /* drag has entered window*/
kDragTrackingInWindow = 3, /* drag is moving within window*/
kDragTrackingLeaveWindow = 4, /* drag has exited window*/
kDragTrackingLeaveHandler = 5 /* drag has exited handler*/
};
/*
_________________________________________________________________________________________________________
* HFS FLAVORS
_________________________________________________________________________________________________________
*/
struct HFSFlavor {
OSType fileType; /* file type */
OSType fileCreator; /* file creator */
UInt16 fdFlags; /* Finder flags */
FSSpec fileSpec; /* file system specification */
};
typedef struct HFSFlavor HFSFlavor;
struct PromiseHFSFlavor {
OSType fileType; /* file type */
OSType fileCreator; /* file creator */
UInt16 fdFlags; /* Finder flags */
FlavorType promisedFlavor; /* promised flavor containing an FSSpec */
};
typedef struct PromiseHFSFlavor PromiseHFSFlavor;
/*
_________________________________________________________________________________________________________
* APPLICATION-DEFINED DRAG HANDLER ROUTINES
_________________________________________________________________________________________________________
*/
typedef pascal OSErr (*DragTrackingHandlerProcPtr)(DragTrackingMessage message, WindowPtr theWindow, void *handlerRefCon, DragReference theDrag);
#if GENERATINGCFM
typedef UniversalProcPtr DragTrackingHandlerUPP;
#else
typedef DragTrackingHandlerProcPtr DragTrackingHandlerUPP;
#endif
enum {
uppDragTrackingHandlerProcInfo = kPascalStackBased
| RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
| STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DragTrackingMessage)))
| STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowPtr)))
| STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *)))
| STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(DragReference)))
};
#if GENERATINGCFM
#define NewDragTrackingHandlerProc(userRoutine) \
(DragTrackingHandlerUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDragTrackingHandlerProcInfo, GetCurrentArchitecture())
#else
#define NewDragTrackingHandlerProc(userRoutine) \
((DragTrackingHandlerUPP) (userRoutine))
#endif
#if GENERATINGCFM
#define CallDragTrackingHandlerProc(userRoutine, message, theWindow, handlerRefCon, theDrag) \
CallUniversalProc((UniversalProcPtr)(userRoutine), uppDragTrackingHandlerProcInfo, (message), (theWindow), (handlerRefCon), (theDrag))
#else
#define CallDragTrackingHandlerProc(userRoutine, message, theWindow, handlerRefCon, theDrag) \
(*(userRoutine))((message), (theWindow), (handlerRefCon), (theDrag))
#endif
typedef pascal OSErr (*DragReceiveHandlerProcPtr)(WindowPtr theWindow, void *handlerRefCon, DragReference theDrag);
#if GENERATINGCFM
typedef UniversalProcPtr DragReceiveHandlerUPP;
#else
typedef DragReceiveHandlerProcPtr DragReceiveHandlerUPP;
#endif
enum {
uppDragReceiveHandlerProcInfo = kPascalStackBased
| RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
| STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr)))
| STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void *)))
| STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DragReference)))
};
#if GENERATINGCFM
#define NewDragReceiveHandlerProc(userRoutine) \
(DragReceiveHandlerUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDragReceiveHandlerProcInfo, GetCurrentArchitecture())
#else
#define NewDragReceiveHandlerProc(userRoutine) \
((DragReceiveHandlerUPP) (userRoutine))
#endif
#if GENERATINGCFM
#define CallDragReceiveHandlerProc(userRoutine, theWindow, handlerRefCon, theDrag) \
CallUniversalProc((UniversalProcPtr)(userRoutine), uppDragReceiveHandlerProcInfo, (theWindow), (handlerRefCon), (theDrag))
#else
#define CallDragReceiveHandlerProc(userRoutine, theWindow, handlerRefCon, theDrag) \
(*(userRoutine))((theWindow), (handlerRefCon), (theDrag))
#endif
/*
_________________________________________________________________________________________________________
* APPLICATION-DEFINED ROUTINES
_________________________________________________________________________________________________________
*/
typedef pascal OSErr (*DragSendDataProcPtr)(FlavorType theType, void *dragSendRefCon, ItemReference theItemRef, DragReference theDrag);
#if GENERATINGCFM
typedef UniversalProcPtr DragSendDataUPP;
#else
typedef DragSendDataProcPtr DragSendDataUPP;
#endif
enum {
uppDragSendDataProcInfo = kPascalStackBased
| RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
| STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(FlavorType)))
| STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void *)))
| STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(ItemReference)))
| STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(DragReference)))
};
#if GENERATINGCFM
#define NewDragSendDataProc(userRoutine) \
(DragSendDataUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDragSendDataProcInfo, GetCurrentArchitecture())
#else
#define NewDragSendDataProc(userRoutine) \
((DragSendDataUPP) (userRoutine))
#endif
#if GENERATINGCFM
#define CallDragSendDataProc(userRoutine, theType, dragSendRefCon, theItemRef, theDrag) \
CallUniversalProc((UniversalProcPtr)(userRoutine), uppDragSendDataProcInfo, (theType), (dragSendRefCon), (theItemRef), (theDrag))
#else
#define CallDragSendDataProc(userRoutine, theType, dragSendRefCon, theItemRef, theDrag) \
(*(userRoutine))((theType), (dragSendRefCon), (theItemRef), (theDrag))
#endif
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
typedef pascal OSErr (*DragInputProcPtr)(Point *mouse, SInt16 *modifiers, void *dragInputRefCon, ScrapRef theDrag);
#if GENERATINGCFM
typedef UniversalProcPtr DragInputUPP;
#else
typedef DragInputProcPtr DragInputUPP;
#endif
enum {
uppDragInputProcInfo = kPascalStackBased
| RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
| STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Point *)))
| STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(SInt16 *)))
| STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *)))
| STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(ScrapRef)))
};
#if GENERATINGCFM
#define NewDragInputProc(userRoutine) \
(DragInputUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDragInputProcInfo, GetCurrentArchitecture())
#else
#define NewDragInputProc(userRoutine) \
((DragInputUPP) (userRoutine))
#endif
#if GENERATINGCFM
#define CallDragInputProc(userRoutine, mouse, modifiers, dragInputRefCon, theDrag) \
CallUniversalProc((UniversalProcPtr)(userRoutine), uppDragInputProcInfo, (mouse), (modifiers), (dragInputRefCon), (theDrag))
#else
#define CallDragInputProc(userRoutine, mouse, modifiers, dragInputRefCon, theDrag) \
(*(userRoutine))((mouse), (modifiers), (dragInputRefCon), (theDrag))
#endif
typedef pascal OSErr (*DragDrawingProcPtr)(DragRegionMessage message, RgnHandle showRegion, Point showOrigin, RgnHandle hideRegion, Point hideOrigin, void *dragDrawingRefCon, ScrapRef theDrag);
#if GENERATINGCFM
typedef UniversalProcPtr DragDrawingUPP;
#else
typedef DragDrawingProcPtr DragDrawingUPP;
#endif
enum {
uppDragDrawingProcInfo = kPascalStackBased
| RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
| STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DragRegionMessage)))
| STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(RgnHandle)))
| STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Point)))
| STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(RgnHandle)))
| STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(Point)))
| STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(void *)))
| STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(ScrapRef)))
};
#if GENERATINGCFM
#define NewDragDrawingProc(userRoutine) \
(DragDrawingUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDragDrawingProcInfo, GetCurrentArchitecture())
#else
#define NewDragDrawingProc(userRoutine) \
((DragDrawingUPP) (userRoutine))
#endif
#if GENERATINGCFM
#define CallDragDrawingProc(userRoutine, message, showRegion, showOrigin, hideRegion, hideOrigin, dragDrawingRefCon, theDrag) \
CallUniversalProc((UniversalProcPtr)(userRoutine), uppDragDrawingProcInfo, (message), (showRegion), (showOrigin), (hideRegion), (hideOrigin), (dragDrawingRefCon), (theDrag))
#else
#define CallDragDrawingProc(userRoutine, message, showRegion, showOrigin, hideRegion, hideOrigin, dragDrawingRefCon, theDrag) \
(*(userRoutine))((message), (showRegion), (showOrigin), (hideRegion), (hideOrigin), (dragDrawingRefCon), (theDrag))
#endif
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
/*
_________________________________________________________________________________________________________
* INSTALLING AND REMOVING HANDLERS API'S
_________________________________________________________________________________________________________
*/
extern pascal OSErr InstallTrackingHandler(DragTrackingHandlerUPP trackingHandler, WindowPtr theWindow, void *handlerRefCon)
TWOWORDINLINE(0x7001, 0xABED);
extern pascal OSErr InstallReceiveHandler(DragReceiveHandlerUPP receiveHandler, WindowPtr theWindow, void *handlerRefCon)
TWOWORDINLINE(0x7002, 0xABED);
extern pascal OSErr RemoveTrackingHandler(DragTrackingHandlerUPP trackingHandler, WindowPtr theWindow)
TWOWORDINLINE(0x7003, 0xABED);
extern pascal OSErr RemoveReceiveHandler(DragReceiveHandlerUPP receiveHandler, WindowPtr theWindow)
TWOWORDINLINE(0x7004, 0xABED);
/*
_________________________________________________________________________________________________________
* CREATING & DISPOSING
_________________________________________________________________________________________________________
*/
extern pascal OSErr NewDrag(DragReference *theDrag)
TWOWORDINLINE(0x7005, 0xABED);
extern pascal OSErr DisposeDrag(DragReference theDrag)
TWOWORDINLINE(0x7006, 0xABED);
/*
_________________________________________________________________________________________________________
* ADDING DRAG ITEM FLAVORS
_________________________________________________________________________________________________________
*/
extern pascal OSErr AddDragItemFlavor(DragReference theDrag, ItemReference theItemRef, FlavorType theType, const void *dataPtr, Size dataSize, FlavorFlags theFlags)
TWOWORDINLINE(0x7007, 0xABED);
extern pascal OSErr SetDragItemFlavorData(DragReference theDrag, ItemReference theItemRef, FlavorType theType, const void *dataPtr, Size dataSize, UInt32 dataOffset)
TWOWORDINLINE(0x7009, 0xABED);
/*
_________________________________________________________________________________________________________
* PROVIDING CALLBACK PROCEDURES
_________________________________________________________________________________________________________
*/
extern pascal OSErr SetDragSendProc(DragReference theDrag, DragSendDataUPP sendProc, void *dragSendRefCon)
TWOWORDINLINE(0x700A, 0xABED);
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
extern pascal OSErr SetDragInputProc(ScrapRef theDrag, DragInputUPP inputProc, void *dragInputRefCon)
TWOWORDINLINE(0x700B, 0xABED);
extern pascal OSErr SetDragDrawingProc(ScrapRef theDrag, DragDrawingUPP drawingProc, void *dragDrawingRefCon)
TWOWORDINLINE(0x700C, 0xABED);
/*
_________________________________________________________________________________________________________
* SETTING THE DRAG IMAGE
_________________________________________________________________________________________________________
*/
extern OSStatus SetDragImage(ScrapRef theDrag, PixMapHandle imagePixMap, RgnHandle imageRgn, Point imageOffsetPt, DragImageFlags theImageFlags)
TWOWORDINLINE(0x7027, 0xABED);
#endif
#if FOR_SYSTEM8_COOPERATIVE
/*
_________________________________________________________________________________________________________
* SETTING THE DRAG IMAGE TRANSLUCENCY LEVEL
_________________________________________________________________________________________________________
*/
extern OSStatus SetDragImageTranslucency(ScrapRef theDrag, DragImageTranslucency newLevel);
/*
_________________________________________________________________________________________________________
* PERFORMING A DRAG
_________________________________________________________________________________________________________
*/
extern OSStatus TrackAEDrag(ScrapRef theDrag, AppleEvent *theEvent, RgnHandle theRegion);
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
extern pascal OSErr TrackDrag(DragReference theDrag, const EventRecord *theEvent, RgnHandle theRegion)
TWOWORDINLINE(0x700D, 0xABED);
/*
_________________________________________________________________________________________________________
* GETTING DRAG ITEM INFORMATION
_________________________________________________________________________________________________________
*/
extern pascal OSErr CountDragItems(DragReference theDrag, UInt16 *numItems)
TWOWORDINLINE(0x700E, 0xABED);
extern pascal OSErr GetDragItemReferenceNumber(DragReference theDrag, UInt16 index, ItemReference *theItemRef)
TWOWORDINLINE(0x700F, 0xABED);
extern pascal OSErr CountDragItemFlavors(DragReference theDrag, ItemReference theItemRef, UInt16 *numFlavors)
TWOWORDINLINE(0x7010, 0xABED);
extern pascal OSErr GetFlavorType(DragReference theDrag, ItemReference theItemRef, UInt16 index, FlavorType *theType)
TWOWORDINLINE(0x7011, 0xABED);
extern pascal OSErr GetFlavorFlags(DragReference theDrag, ItemReference theItemRef, FlavorType theType, FlavorFlags *theFlags)
TWOWORDINLINE(0x7012, 0xABED);
extern pascal OSErr GetFlavorDataSize(DragReference theDrag, ItemReference theItemRef, FlavorType theType, Size *dataSize)
TWOWORDINLINE(0x7013, 0xABED);
extern pascal OSErr GetFlavorData(DragReference theDrag, ItemReference theItemRef, FlavorType theType, void *dataPtr, Size *dataSize, UInt32 dataOffset)
TWOWORDINLINE(0x7014, 0xABED);
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
/*
_________________________________________________________________________________________________________
* DRAG ITEM BOUNDS
_________________________________________________________________________________________________________
*/
extern pascal OSErr GetDragItemBounds(ScrapRef theDrag, ItemReference theItemRef, Rect *itemBounds)
TWOWORDINLINE(0x7015, 0xABED);
extern pascal OSErr SetDragItemBounds(ScrapRef theDrag, ItemReference theItemRef, const Rect *itemBounds)
TWOWORDINLINE(0x7016, 0xABED);
/*
_________________________________________________________________________________________________________
* DROP LOCATIONS
_________________________________________________________________________________________________________
*/
extern pascal OSErr GetDropLocation(ScrapRef theDrag, AEDesc *dropLocation)
TWOWORDINLINE(0x7017, 0xABED);
extern pascal OSErr SetDropLocation(ScrapRef theDrag, const AEDesc *dropLocation)
TWOWORDINLINE(0x7018, 0xABED);
/*
_________________________________________________________________________________________________________
* GETTING INFORMATION ABOUT A DRAG
_________________________________________________________________________________________________________
*/
extern pascal OSErr GetDragAttributes(ScrapRef theDrag, DragAttributes *flags)
TWOWORDINLINE(0x7019, 0xABED);
extern pascal OSErr GetDragMouse(ScrapRef theDrag, Point *mouse, Point *globalPinnedMouse)
TWOWORDINLINE(0x701A, 0xABED);
extern pascal OSErr SetDragMouse(ScrapRef theDrag, Point globalPinnedMouse)
TWOWORDINLINE(0x701B, 0xABED);
extern pascal OSErr GetDragOrigin(ScrapRef theDrag, Point *globalInitialMouse)
TWOWORDINLINE(0x701C, 0xABED);
extern pascal OSErr GetDragModifiers(ScrapRef theDrag, SInt16 *modifiers, SInt16 *mouseDownModifiers, SInt16 *mouseUpModifiers)
TWOWORDINLINE(0x701D, 0xABED);
/*
_________________________________________________________________________________________________________
* DRAG HIGHLIGHTING
_________________________________________________________________________________________________________
*/
extern pascal OSErr ShowDragHilite(ScrapRef theDrag, RgnHandle hiliteFrame, Boolean inside)
TWOWORDINLINE(0x701E, 0xABED);
extern pascal OSErr HideDragHilite(ScrapRef theDrag)
TWOWORDINLINE(0x701F, 0xABED);
extern pascal OSErr DragPreScroll(ScrapRef theDrag, SInt16 dH, SInt16 dV)
TWOWORDINLINE(0x7020, 0xABED);
extern pascal OSErr DragPostScroll(ScrapRef theDrag)
TWOWORDINLINE(0x7021, 0xABED);
extern pascal OSErr UpdateDragHilite(ScrapRef theDrag, RgnHandle updateRgn)
TWOWORDINLINE(0x7022, 0xABED);
#endif
/*
_________________________________________________________________________________________________________
* UTILITIES
_________________________________________________________________________________________________________
*/
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
extern pascal Boolean WaitMouseMoved(Point initialMouse)
TWOWORDINLINE(0x7023, 0xABED);
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
extern pascal OSErr ZoomRects(const Rect *fromRect, const Rect *toRect, SInt16 zoomSteps, ZoomAcceleration acceleration)
TWOWORDINLINE(0x7024, 0xABED);
extern pascal OSErr ZoomRegion(RgnHandle region, Point zoomDistance, SInt16 zoomSteps, ZoomAcceleration acceleration)
TWOWORDINLINE(0x7025, 0xABED);
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
/*
_________________________________________________________________________________________________________
* OLD NAMES
These are provided for compatiblity with older source bases. It is recommended to not use them since
they may removed from this interface file at any time.
_________________________________________________________________________________________________________
*/
enum {
dragHasLeftSenderWindow = kDragHasLeftSenderWindow, /* drag has left the source window since TrackDrag */
dragInsideSenderApplication = kDragInsideSenderApplication, /* drag is occurring within the sender application */
dragInsideSenderWindow = kDragInsideSenderWindow /* drag is occurring within the sender window */
};
enum {
dragTrackingEnterHandler = kDragTrackingEnterHandler, /* drag has entered handler */
dragTrackingEnterWindow = kDragTrackingEnterWindow, /* drag has entered window */
dragTrackingInWindow = kDragTrackingInWindow, /* drag is moving within window */
dragTrackingLeaveWindow = kDragTrackingLeaveWindow, /* drag has exited window */
dragTrackingLeaveHandler = kDragTrackingLeaveHandler /* drag has exited handler */
};
enum {
dragRegionBegin = kDragRegionBegin, /* initialize drawing */
dragRegionDraw = kDragRegionDraw, /* draw drag feedback */
dragRegionHide = kDragRegionHide, /* hide drag feedback */
dragRegionIdle = kDragRegionIdle, /* drag feedback idle time */
dragRegionEnd = kDragRegionEnd /* end of drawing */
};
enum {
zoomNoAcceleration = kZoomNoAcceleration, /* use linear interpolation */
zoomAccelerate = kZoomAccelerate, /* ramp up step size */
zoomDecelerate = kZoomDecelerate /* ramp down step size */
};
enum {
kDragStandardImage = kDragStandardTranslucency, /* 65% image translucency (standard)*/
kDragDarkImage = kDragDarkTranslucency, /* 50% image translucency*/
kDragDarkerImage = kDragDarkerTranslucency, /* 25% image translucency*/
kDragOpaqueImage = kDragOpaqueTranslucency /* 0% image translucency (opaque)*/
};
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=reset
#endif
#if PRAGMA_IMPORT_SUPPORTED
#pragma import off
#endif
#ifdef __cplusplus
}
#endif
#endif /* __DRAG__ */